package com.molichuxing.gateway.bff.car.services;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.result.ResponseResult;
import com.molichuxing.gateway.bff.basic.entity.response.VehicleModlemakeVo;
import com.molichuxing.gateway.bff.car.entity.response.CarDetailVo;
import com.molichuxing.gateway.bff.car.entity.response.CarVo;
import com.molichuxing.gateway.bff.car.entity.response.CarsViolationVo;
import com.molichuxing.gateway.bff.car.entity.response.IovTrajectoryVo;

import java.util.List;
import java.util.Map;

/**
 * @Author: xuelin yi
 * @Description:
 * @Date: Created in 14:53 2019/9/11
 * @Modified By:
 **/
public interface CarBffService {

    /**
     * 根据条件查询车辆列表
     * @param selectParams
     * licencePlate(车牌) vin（车架号） vehicleId（车型） purchaseStartDate（采购开始时间） purchaseEndDate（采购结束时间）
     * stockId（仓库id）  vehicleType（车辆类型）  status（1：未入网，2：已入网，3：在库车辆，4：在店车辆，5：业务中，6：非业务）   plateStatus（上牌状态）
     * @param pageSize
     * @param pageNum
     * @return
     */
    Paged<CarVo> getCarList(Map<String, Object> selectParams, Integer pageNum, Integer pageSize) throws Exception;

    /**
     * 根据车辆id获取车辆详细信息
     * @param carId
     * @return
     */
    public CarDetailVo getCarDetail(Integer carId)throws Exception;


    /**
     * 根据vin获取车辆轨迹的时间段
     * @param vin
     * @return
     */
    public ResponseResult<List<String>> getTrajectoryTime(String vin);

    /**
     * 根据vin获取车辆轨迹
     * @param vin
     * @return
     */
    public List<IovTrajectoryVo> getTrajectory(String vin, String startTime, String endTime);

    /**
     *获取经销商下所有的车型信息
     * @return
     */
    public List<VehicleModlemakeVo> getVehicleMakeByVehicle() throws Exception;


}
